function createAnimate(config) {
  var startValue = config.startValue;
  var endValue = config.endValue;
  var duration = config.duration || 1000;
  var stepTime = config.stepTime || 20;

  var runningCount = Math.floor(duration / stepTime);
  var stepValue = (endValue - startValue) / runningCount;

  var curCount = 0;
  var curValue = startValue;
  var timerId = setInterval(() => {
    curCount++;
    curValue += stepValue;
    if (curCount >= runningCount) {
      config.onendListener && config.onendListener(String.toString());
      clearInterval(timerId);
      return;
    }
    config.onChangeListener && config.onChangeListener(curValue);
  }, stepTime);
}

// var config = {
//   startValue: 100,
//   endValue: 0,
//   onChangeListener: function (value) {
//     console.log(value);
//   },
//   onendListener: function (value) {
//     console.log(value);
//   },
// };
// createAnimate(config);
